Introduction to NetStress

Welcome to Nuts About Nets' NetStress application. NetStress is a benchmarking tool used to measure network performance -- both wired and wireless. It is a simple tool that employs bulk data transfer using TCP. Network performance is reported in terms of throughput -- that is, bytes-per-second.

NetStress is distributed freely by Nuts About Nets LLC both as a convenience to network engineers, IT administrators, wireless technicians and WiFi users and, also, as a way of drawing attention to and generating interest in our other diagnostic products and RF analyzers. NetStress can be downloaded from www.NutsAboutNets.com and www.PerformanceWifi.net . You may also distribute NetStress as long as that is done without charge and you agree to the terms of the License Agreement .

In order to test and troubleshoot networks we need tools that allow us to generate network traffic and analyze the network's throughput performance. This is true for both wired and wireless networks, but we'll mostly focus on 802.11 (WiFi) networks because analysis tools are relatively scarce or, when available, tend to be rather expensive and overly complex to use. Also, because WiFi networks are sensitive to RF interference from other wireless devices, they are more difficult to troubleshoot and transient changes in the local environment may affect their performance. Tools that are typically used to troubleshoot wireless networks report signal strengths of RF interference or beacons from an access point in units of dBm or RSSI (relative signal strength indication). But what do these really mean? How do these translate in terms of the performance of your wireless network?

Our wireless network adapter may report the beacon strength of our access point to be -53 dBm or -65 dBm or -73 dBm or <fill-in some number>. Or, our RF spectrum analyzer displays a -74 dBm interference peak in the middle of channel 6. Or, we and our neighbor or the business next door have our access points configured to use channel 11? Is this good? Bad? Doesn't matter? Ultimately, the bottom line and what we care about most is throughput -- that is, how many bytes-per-sec can be transferred from one node on the network to another. The dBm and RSSI numbers don't mean much if we can't somehow relate them to a performance metric -- the most relevant being 'bytes / sec'. The point is before we can really begin to troubleshoot a wireless network we need a way to benchmark its performance, so as modifications are made we can determine whether or not they really make a difference in the network's performance.

This is where NetStress fits in. It's a simple tool, originally created for our internal business use, which we later realized would also be of value to others. Here's the ideal scenario: You install a new wireless network and it works perfectly. Run NetStress and record the benchmark results for later reference. Sometime in the future when either you or others suspect performance has declined then run NetStress again and compare the latest results with those you gathered when the network was first installed and working "perfectly". The results of that comparison will indicate whether or not there really is a problem and dictate which steps to take next (if any). Regardless of your technical expertise or how expensive your diagnostic tools, if you are modifying a wireless network or making decisions to modify it and you are not testing throughput then you risk wasting time and resources going down the wrong path.


System Requirements

System Requirements:

  • PC running 32-bit Windows 2000/XP/Vista
  • Microsoft .NET Framework version 2.0 (or later)
  • CD-ROM Drive (for installing software)
  • a minimum of 300 MB available hard disk space

Suggested Hardware Requirements:

  • CPU: Intel Pentium 4, 1.2 GHz or faster
  • Memory: 512 MB
  • Hard Drive: 1000 MB free space
  • Video: 32 MB video RAM


Using Netstress

To use NetStress you launch the application on two different computers on the network -- one instance of the program runs in server/receiver mode and the other in client/transmitter mode. The results of the throughput benchmarking indicate the performance of the path between the client and server machines. By selecting the client and server machines at various points within the network you can analyze critical portions of the data path.

NetStress has an advantage over tools like FTP (File Transfer Protocol) -- which transfers data to and from disks. If you have a high performance network, then using FTP may be insufficient for real network testing -- since data transfer is occurring to/from disks. NetStress achieves high performance testing by filling buffers in memory with data, then repeatedly transmitting this data using the TCP protocol. Since everything is running from memory, then we have a traffic transmitter and receiver that can operate at true network speeds. In the case of wireless networks -- whose theoretical bandwidth is significantly less than wired networks -- this may not be an issue.

NetStress reports the amount of data transferred and the throughput benchmark in 'bytes / sec'. By comparing actual throughput with the theoretical bandwidth between the client and server or with a measurement taken at an earlier date, you can tell whether the network is operating as expected. Variations in throughput may indicate a significant amount of other traffic, overloaded network equipment, communication errors which cause packets to be lost or, in the case of wireless networks, interference from other wireless devices. By performing tests using different machines on the network then you begin to gain clues as to where the problem lies and which areas should be examined in greater detail.

NetStress uses TCP (Transmission Control Protocol) to transfer data between two machines on a network. TCP is a connection-oriented protocol that requires a server/receiver that is "listening" before a client/transmitter can connect. So, to run NetStress, you first launch the application on one machine in server mode and then launch the same application on a second machine in client mode. The only difference between the two modes (besides which transmits and which receives) is the client application needs to know the IP address of the server machine. NetStress uses the time and the amount of data transferred from the client to server to calculate the throughput benchmark in 'bytes / sec'.

To run a test first go to the "server" machine and launch NetStress in server mode.

After pressing the 'OK' button then the server's application window appears:

This particular machine has two network adapters installed -- one wireless (192.168.1.29) and one wired (192.168.17.75), so we need to specify to the application which one to use. Since we are interested in testing our wireless network then we select the 192.168.1.29 adapter. After selecting which adapter to use then press the 'Start Server' button. The application is now running in server mode and "listening" for a TCP connection. Take note of the server's IP address -- in our case it is 192.168.1.29.

Next go to the "client" machine and launch NetStress in client mode.

After pressing the 'OK' button then the server's application window appears:

This particular machine only has a wireless adapter -- so the application will use that by default. For the client application we also need to enter the server's IP address which, in this example, is 192.168.1.29. And then press the 'Start Client' button.

Once the TCP connection is made and the session begins then the client repeatedly transmits data to the server application. The current throughput is calculated and also charted as a function of time. The calculations are performed by the server application and reported back to the client. In this way both applications can display the results.


Interpreting The Results

Below are three scenarios we'll consider:

1. Both the client and server use a wired connection to the network. We connected our two machines to a wireless router that included 4 100-Mbps ports. The important point about this scenario is the path between the two nodes is wired on both sides. When we ran NetStress our results reported a throughput of a little over 7,750,460 bytes-per-second. A 100-Mbps port is capable of a theoretical, maximum throughput of 13,107,200 bytes-per-second (100 x 1024 x 1024 bits / 8 bits / byte). Considering that various factors (including the TCP protocol) contribute to an overhead that causes the actual throughput to deviate from the theoretical, then this type of result is reasonable and to be expected.

2. Either the client or server communicates wirelessly -- the other uses a wired connection to the network. We setup a wireless network and configured the wireless router's Network Mode to use Wireless-G only. When we ran NetStress our results reported a throughput of approximately 2,500,000 bytes- per-second. So, how does this compare with the theoretical maximum of 54 Mbps? 54 Mbps is equivalent to 7,077,888 bytes-per-second (54 x 1024 x 1024 bits / 8 bits / byte). So, is our actual throughput (which is roughly 35% of the theoretical) reasonable? The short answer -- yes. The 54 Mbps is the theoretical maximum of what the hardware and medium are capable of. There are numerous factors that can contribute to the difference -- including network traffic, interference from other wireless devices and, equally important, the overhead of the 802.11 and TCP protocols. The throughput we measure doesn't take into account that every 802.11 packet includes additional bytes besides the data payload. Also, the TCP protocol takes a big chunk out of the performance (http://repository.cs.aueb.gr/getdoc.php?papercode=CPWR-18-2006). Taking into account throughput and coverage factors, others (http://www.atheros.com/pt/whitepapers/Methodology_Testing_WLAN_Chariot.pdf) have determined a theoretical maximum user-level performance for the 802.11 standards -- and for 802.11 g this turns out to be 24.4 Mbps (approximately 3,200,000 bytes / sec). Our measured throughput of 2,500,000 bytes / sec compares favorably with the theoretical maximum user-level throughput of 3,200,000 bytes / sec.

3. Both client and server machines communicate wirelessly. A setup similar to (2) above, except both nodes use a wireless connection to the network. When we ran NetStress it reported a throughput rate of 1,300,000 bytes-per-second -- roughly one-half of that reported by scenario (2). The explanation is that each wireless "hop" takes its toll on the overall throughput -- so, this result is reasonable and expected.

Conclusion:

We've presented some of our results here to serve as a guideline to help you with interpreting yours. Your throughput benchmarking results will likely differ from ours but, in general, for similar setups we'd expect the results to be roughly comparable. That is, of course, unless there is something critical going on that is impacting the performance of your network.

Just to be clear, you should not use our results as a reference. The best reference values are those you record during the lifetime of your network. Only in that way will you know for sure whether things are working normally or whether a problem has arisen which now requires further investigation.


License Agreement

Nuts About Nets, LLC

NetStress Network Benchmarking Software
END USER LICENSE AGREEMENT

Except where otherwise noted, all of the documentation and software included in the NetStress package is copyrighted by Nuts About Nets, LLC.

IMPORTANT-READ CAREFULLY:
This Nuts About Nets, LLC End-User License Agreement ("EULA") is a legal agreement between you (either an individual or a single entity) and Nuts About Nets, LLC for the NetStress Network Benchmarking software product identified above, which includes computer software and may include associated media, printed materials, additional computer software applications, and "online" or electronic documentation ("SOFTWARE PRODUCT").

By downloading, installing, copying, running, executing, or otherwise using any portion of the SOFTWARE PRODUCT, you agree to be bound by the terms of this EULA. If you do not agree to be bound to the terms of this EULA, then please do not download, install, accept (for example, and not by way of limitation, by checking the "I DO NOT ACCEPT" box in connection with this EULA at the beginning of the software download, installation, and/or initial execution process), or permit others to download, install, copy, run, execute, or otherwise use the SOFTWARE PRODUCT.

SOFTWARE PRODUCT LICENSE

The SOFTWARE PRODUCT is protected by copyright laws and international copyright treaties, as well as other intellectual property laws and treaties. The SOFTWARE PRODUCT is licensed, not sold.

1. GRANT OF LICENSE. This EULA grants you the following rights:

a. SOFTWARE PRODUCT. You may install and use an unlimited number of copies of the SOFTWARE PRODUCT on computers, including workstations, terminals or other digital electronic devices ("COMPUTERS"), provided the software is used with a wireless network adapter provided to you by Nuts About Nets, LLC.

b. No Sale. You acknowledge and agree that this copy of the SOFTWARE PRODUCT has been licensed to you pursuant to the terms and conditions of this EULA and that such copy of the SOFTWARE PRODUCT has not been sold to you. In addition, you acknowledge that this copy of the SOFTWARE PRODUCT is not subject to the "first sale" doctrine as that term is defined in United States Copyright laws.

c. Restrictions. You agree (i) not to copy, transfer, assign, rent, resell, distribute or use the SOFTWARE PRODUCT other than as expressly authorized in this EULA, (ii) not to remove any copyright notice, trademark notice, and/or other proprietary legend or indication of confidentiality set forth on or contained in the SOFTWARE PRODUCT, and (iii) to refrain from using the SOFTWARE PRODUCT for any other purpose other than as expressly authorized in this EULA.

2. DESCRIPTION OF OTHER RIGHTS AND LIMITATIONS.

a. Limitations on Reverse Engineering, Decompilation, and Disassembly. You may not reverse engineer, decompile, recompile, precompile, disassemble, hack, port, or otherwise attempt to discover the source code to the SOFTWARE PRODUCT.

b. Support Services. Nuts About Nets, LLC may provide you with support services related to the SOFTWARE PRODUCT ("Support Services"). Any supplemental software code provided to you as part of the Support Services shall be considered part of the SOFTWARE PRODUCT and subject to the terms and conditions of this EULA.

c. Software Transfer. You may permanently transfer all of your rights under this EULA, provided you retain no copies, you transfer all of the SOFTWARE PRODUCT (including all component parts, the media and printed materials, any upgrades, and this EULA) and the recipient agrees to the terms of this EULA. If the SOFTWARE PRODUCT is an upgrade, any transfer must include all prior versions of the SOFTWARE PRODUCT.

d. Termination. Without prejudice to any other rights, Nuts About Nets, LLC may terminate this EULA if you fail to comply with the terms and conditions of this EULA. In such event, you must destroy all copies of the SOFTWARE PRODUCT and all of its component parts.

3. INTELLECTUAL PROPERTY RIGHTS.

All title and intellectual property rights in and to the SOFTWARE PRODUCT, and any copies you are permitted to make herein are owned by Nuts About Nets, LLC. Furthermore, you agree that Nuts About Nets, LLC owns all right, title, interest, and intellectual property rights in and to the SOFTWARE PRODUCT and in all patents, trademarks, trade names, inventions, copyrights, know how and trade secrets, and any related applications or extensions, relating to the design, manufacture, operation or service of the SOFTWARE PRODUCT.

4. EXPORT RESTRICTIONS.

You acknowledge that the SOFTWARE PRODUCT is subject to United States export jurisdiction. You agree to comply with all applicable international and national laws that apply to the Software Product and/or to the export of technical data, including the United States Export Administration Regulations, as well as end-user, end-use, and destination restrictions issued by the United States and other governments. You agree that you will not export or re-export the SOFTWARE PRODUCT (or portions thereof) to any country, person or entity subject to U.S. export restrictions. You specifically agree not to export or re-export the SOFTWARE PRODUCT (or portions thereof): (i) to any country subject to a U.S. embargo or trade restriction; (ii) to any person or entity who you know or have reason to know will utilize the SOFTWARE PRODUCT (or portion thereof) in the production of nuclear, chemical or biological weapons; or (iii) to any person or entity who has been denied export privileges by the U.S. government.

5. DISCLAIMER OF WARRANTIES.

To the maximum extent permitted by applicable law, Nuts About Nets, LLC and its suppliers provide the SOFTWARE PRODUCT and any (if any) Support Services "AS IS AND WITH ALL FAULTS", and hereby disclaim all warranties and conditions, either express, implied or statutory, including, but not limited to, any (if any) implied warranties or conditions of merchantability, of fitness for a particular purpose, of non-infringement, of lack of viruses, of accuracy or completeness of responses, of results, of ability to achieve a particular result, of ability to execute uninterrupted or error-free, and of lack of negligence or lack of workmanlike effort, all with regard to the SOFTWARE PRODUCT, and the provision of or failure to provide Support Services. THE ENTIRE RISK AS TO THE QUALITY OF OR ARISING OUT OF USE OR PERFORMANCE OF THE SOFTWARE PRODUCT AND SUPPORT SERVICES, IF ANY, REMAINS WITH YOU.

Specifically, and without limiting the foregoing, you acknowledge that Nuts About Nets, LLC has not made any representations or warranties with respect to the SOFTWARE PRODUCT or the functionality thereof and has made no representations or warranties with respect thereto. In addition, you acknowledge that you have selected the SOFTWARE PRODUCT, and that Nuts About Nets, LLC makes no representations or warranties with respect to the fitness of the SOFTWARE PRODUCT for any purpose.

6. NO SUPPORT

Nothing in this EULA shall obligate Nuts About Nets, LLC to provide any support for the SOFTWARE PRODUCT. Nuts About Nets, LLC may, but shall be under no obligation to, correct any defects in the SOFTWARE PRODUCT and/or provide updates to You of the SOFTWARE PRODUCT. You shall promptly report to Nuts About Nets, LLC any defects You find in the SOFTWARE PRODUCT to aid Nuts About Nets, LLC in creating improved revisions of such items.

7. EXCLUSION OF INCIDENTAL, CONSEQUENTIAL AND CERTAIN OTHER DAMAGES.

To the maximum extent permitted by applicable law, in no event shall Nuts About Nets, LLC or its suppliers be liable under any theory of liability for any special, incidental, indirect, or consequential damages whatsoever (including, but not limited to, damages for loss of profits or confidential or other information, for business interruption, for personal injury, for loss of privacy, for failure to meet any duty including of good faith or of reasonable care, for negligence, and for any other pecuniary or other loss whatsoever) arising out of or in any way related to the use of or inability to use the SOFTWARE PRODUCT, the provision of or failure to provide support services, or otherwise under or in connection with any provision of this EULA, even in the event of the fault, tort (including negligence), strict liability, breach of contract or breach of warranty of Nuts About Nets, LLC or any supplier, and even if Nuts About Nets, LLC or any supplier has been advised or should know of the possibility of such damages.

8. LIMITATION OF LIABILITY AND REMEDIES.

Notwithstanding anything to the contrary contained in this EULA, and without limiting any other rights, remedies, limitations, or restrictions in this EULA or under law, Nuts About Nets, LLC will not be liable with respect to any subject matter of this EULA under any contract, negligence, strict liability, or other theory, at law or in equity, for any amounts aggregating in excess of amounts paid to it under this agreement in the twelve (12) month period before the cause of action arose.

9. INDEMNITY

You hereby agree to indemnify, protect, defend and hold Nuts About Nets, LLC harmless from and against any and all claims, losses and damages, including without limitation, reasonable attorneys' and experts' fees and disbursements, (a) which may at any time be asserted against Nuts About Nets, LLC by any party for Your failure to perform any of the covenants, agreements, terms, provisions or conditions contained in this EULA, (b) by any party by reason of Your use or misuse of the SOFTWARE PRODUCT, or (c) resulting from any failure by You to comply with any term or condition of this EULA. The provisions of this Section 10 shall survive the expiration or earlier termination of the EULA.

10. ENTIRE AGREEMENT.

This EULA (including any addendum or amendment to this EULA which is included with the SOFTWARE PRODUCT) is the entire agreement between you and Nuts About Nets, LLC relating to the SOFTWARE PRODUCT and the Support Services (if any or many) and it supersedes all prior or contemporaneous oral or written communications, proposals and representations with respect to the SOFTWARE PRODUCT or any other subject matter covered by this EULA. To the extent the terms of any Nuts About Nets, LLC policies or programs for Support Services conflict with the terms of this EULA, the terms of this EULA shall control.

If any provision of this EULA shall be or become invalid, illegal, or unenforceable in any respect, the validity, legality, and enforceability of the remaining provisions contained herein shall not be affected thereby. No failure or delay in exercising any right or remedy shall operate as a waiver of any such (or any other) right or remedy. Any modification or waiver to this EULA must be in writing and signed by both parties. The language of this EULA shall be construed as a whole, according to its fair meaning and intent, and not strictly for or against either party, regardless of who drafted or was principally responsible for drafting this EULA or any specific term or conditions hereof.

Nothing in this EULA shall be deemed to create any type of agency, joint venture, or partnership relationship between the parties. Neither party shall have any right or authority to bind or obligate the other in any manner to any third party. In the event of any legal proceeding between the parties arising out of or related to this EULA, the prevailing party shall be entitled to recover, in addition to any other relief awarded or granted, its costs and expenses (including reasonable attorneys' and expert witness' fees) incurred in any such proceeding.

11. QUESTIONS?

Should you have any questions concerning this EULA please contact Nuts About Nets, LLC via email at NutsAboutNets@gmail.com or by phone at 425.881.6506.


Contact Us

Nuts About Nets, LLC

2855 152nd Ave NE, Redmond WA 98052

Tel: 425.881.6506

General information and sales: NutsAboutNets@gmail.com
Technical Support: NutsAboutNets@gmail.com
Web Site: www.NutsAboutNets.com